package com.ruoyi.system.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * ERP-合同对象 erp_contract
 * 
 * @author ruoyi
 * @date 2024-12-26
 */
public class ErpContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** $column.columnComment */
//    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long contractId;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private String contractName;

    /** 客户ID */
    @Excel(name = "客户ID")
    private Long customerId;

    /** 商机ID */
    @Excel(name = "商机ID")
    private Long businessId;

    /** 0 未审核 1 审核通过 2 审核拒绝 3 审核中 4 已撤回 5草稿 6 作废 */
    @Excel(name = "0 未审核 1 审核通过 2 审核拒绝 3 审核中 4 已撤回 5草稿 6 作废")
    private Integer checkStatus;

    /** 审核记录ID */
    @Excel(name = "审核记录ID")
    private Long examineRecordId;

    /** 下单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "下单日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderDate;

    /** 创建人ID */
    @Excel(name = "创建人ID")
    private Long createUserId;

    /** 负责人ID */
    @Excel(name = "负责人ID")
    private Long ownerUserId;

    /** 合同编号 */
    @Excel(name = "合同编号")
    private String num;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 合同金额 */
    @Excel(name = "合同金额")
    private BigDecimal money;

    /** 整单折扣 */
    @Excel(name = "整单折扣")
    private BigDecimal discountRate;

    /** 产品总金额 */
    @Excel(name = "产品总金额")
    private BigDecimal totalPrice;

    /** 合同类型 */
    @Excel(name = "合同类型")
    private String yesapi72crmCrmContractTypes;

    /** 付款方式 */
    @Excel(name = "付款方式")
    private String paymentType;

    /** 批次 比如附件批次 */
    @Excel(name = "批次 比如附件批次")
    private String batchId;

    /** 只读权限 */
    @Excel(name = "只读权限")
    private String roUserId;

    /** 读写权限 */
    @Excel(name = "读写权限")
    private String rwUserId;

    /** 客户签约人（联系人id） */
    @Excel(name = "客户签约人", readConverterExp = "联=系人id")
    private Long contactsId;

    /** 公司签约人 */
    @Excel(name = "公司签约人")
    private Long companyUserId;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setContractId(Long contractId) 
    {
        this.contractId = contractId;
    }

    public Long getContractId() 
    {
        return contractId;
    }
    public void setContractName(String contractName) 
    {
        this.contractName = contractName;
    }

    public String getContractName() 
    {
        return contractName;
    }
    public void setCustomerId(Long customerId) 
    {
        this.customerId = customerId;
    }

    public Long getCustomerId() 
    {
        return customerId;
    }
    public void setBusinessId(Long businessId) 
    {
        this.businessId = businessId;
    }

    public Long getBusinessId() 
    {
        return businessId;
    }
    public void setCheckStatus(Integer checkStatus) 
    {
        this.checkStatus = checkStatus;
    }

    public Integer getCheckStatus() 
    {
        return checkStatus;
    }
    public void setExamineRecordId(Long examineRecordId) 
    {
        this.examineRecordId = examineRecordId;
    }

    public Long getExamineRecordId() 
    {
        return examineRecordId;
    }
    public void setOrderDate(Date orderDate) 
    {
        this.orderDate = orderDate;
    }

    public Date getOrderDate() 
    {
        return orderDate;
    }
    public void setCreateUserId(Long createUserId) 
    {
        this.createUserId = createUserId;
    }

    public Long getCreateUserId() 
    {
        return createUserId;
    }
    public void setOwnerUserId(Long ownerUserId) 
    {
        this.ownerUserId = ownerUserId;
    }

    public Long getOwnerUserId() 
    {
        return ownerUserId;
    }
    public void setNum(String num) 
    {
        this.num = num;
    }

    public String getNum() 
    {
        return num;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setMoney(BigDecimal money) 
    {
        this.money = money;
    }

    public BigDecimal getMoney() 
    {
        return money;
    }
    public void setDiscountRate(BigDecimal discountRate) 
    {
        this.discountRate = discountRate;
    }

    public BigDecimal getDiscountRate() 
    {
        return discountRate;
    }
    public void setTotalPrice(BigDecimal totalPrice) 
    {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice() 
    {
        return totalPrice;
    }
    public void setYesapi72crmCrmContractTypes(String yesapi72crmCrmContractTypes) 
    {
        this.yesapi72crmCrmContractTypes = yesapi72crmCrmContractTypes;
    }

    public String getYesapi72crmCrmContractTypes() 
    {
        return yesapi72crmCrmContractTypes;
    }
    public void setPaymentType(String paymentType) 
    {
        this.paymentType = paymentType;
    }

    public String getPaymentType() 
    {
        return paymentType;
    }
    public void setBatchId(String batchId) 
    {
        this.batchId = batchId;
    }

    public String getBatchId() 
    {
        return batchId;
    }
    public void setRoUserId(String roUserId) 
    {
        this.roUserId = roUserId;
    }

    public String getRoUserId() 
    {
        return roUserId;
    }
    public void setRwUserId(String rwUserId) 
    {
        this.rwUserId = rwUserId;
    }

    public String getRwUserId() 
    {
        return rwUserId;
    }
    public void setContactsId(Long contactsId) 
    {
        this.contactsId = contactsId;
    }

    public Long getContactsId() 
    {
        return contactsId;
    }
    public void setCompanyUserId(Long companyUserId) 
    {
        this.companyUserId = companyUserId;
    }

    public Long getCompanyUserId() 
    {
        return companyUserId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractId", getContractId())
            .append("contractName", getContractName())
            .append("customerId", getCustomerId())
            .append("businessId", getBusinessId())
            .append("checkStatus", getCheckStatus())
            .append("examineRecordId", getExamineRecordId())
            .append("orderDate", getOrderDate())
            .append("createUserId", getCreateUserId())
            .append("ownerUserId", getOwnerUserId())
            .append("createTime", getCreateTime())
            .append("num", getNum())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("money", getMoney())
            .append("discountRate", getDiscountRate())
            .append("totalPrice", getTotalPrice())
            .append("yesapi72crmCrmContractTypes", getYesapi72crmCrmContractTypes())
            .append("paymentType", getPaymentType())
            .append("batchId", getBatchId())
            .append("roUserId", getRoUserId())
            .append("rwUserId", getRwUserId())
            .append("contactsId", getContactsId())
            .append("companyUserId", getCompanyUserId())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .toString();
    }
}
